The present invention relates to an envelope signal generator for electronic musical instruments, and more particularly to an envelope signal generator that generates natural envelopes from which digital noises are removed substantially by obtaining a difference between a current value and a targeted value and then generating a corresponding value for compensating the difference.
In a conventional musical instrument, envelope signals for generating timbres similar to those generated by non-electronic musical instruments have a waveform such as waveform a illustrated in FIG. 2B. That is, signal value increases sharply in an early period t0-t1 of sound generation, slightly decreases in a period t1-t2, is relatively sustained in a period t2-t3 before a key is released, and drastically reduces in a period t3-t4 after the key is released.
An envelope generator that generates an envelope waveform such as above is illustrated in FIG. 1. In the envelope generator illustrated in FIG. 1, it is possible to generate a natural envelope signal by performing an operation that generates an envelope that sharply increases exponentially in the period t0-t1 of a waveform of FIG. 2B by an operation of a digital operation circuit 1.
The digital operation circuit 1 receives current envelope data through an input terminal B and at the same time a change value data through the input terminal A from a gate circuit 5, and performs addition or subtraction operation according to up or down signal from a control circuit 6. The operated envelope data is inputted to a shift register 2, which maintains current value before a next operation is performed.
Meanwhile, of nine bits of output of the shift register 2, upper three bits are inputted to a change value switching circuit 3, and the three bit are used in checking a range to which a current value belongs to and selecting a change value data. That is, when the upper three bits are all 000 as illustrated in a change value data table of FIG. 2D, it is considered that current value belongs to a range of zero to sixty-three and in response the change value switching circuit 3 sends output to a change value data generator 4 which then shows a value of 64.
Accordingly, the change value data generator 4 outputs values of 64, 64, 32, . . . 1 to the gate circuit 5 in response to values of 000, 001, 010, 011, . . . 111 of the shift register 2, and the gate circuit 5 performs open/close operation according to a timing pulse from the control circuit 6 and sequentially operates change value data of 64, 64, 32, . . . 1 of an operation circuit 1. A result of the operation is illustrated in FIG. 2C. That is, in the conventional envelope generator, waveform of an envelope is produced by performing an operation in which a change value is determined according to a current value.
In the conventional envelope signal generator, a value of the change value data is uniformly determined according to a current value, so in case where an envelope has a waveform that does not reach to a maximum value, such as increasing up to a value of 256, not only a rough increase of values of 64, 64, 32 and 16 is resulted but also it is impossible to produce a normal waveform such as the waveform b illustrated in FIG. 2B, and accordingly a waveform such as a waveform c shown in FIG. 2B is resulted.
That is, the conventional envelope generator has a setback that in case where a current value belongs to a range of a low value level, a value of the change value data becomes substantially higher than a value of the change value data of a case where a current value belongs to a range of a high value level, thereby a refined waveform cannot be produced.